#ifndef _WMS_HTTP_H_
#define _WMS_HTTP_H_

#include "wms_config.h"
#include <WebServer.h>
#include <HTTPClient.h>
#include "wms_wifi.h"
#include "wms_device.h"

// HTTP服务器状态枚举
typedef enum
{
    HTTP_SERVER_STOPPED = 0,
    HTTP_SERVER_RUNNING
} http_server_state_e;

// 初始化HTTP服务器
void init_http_server();

// 启动HTTP服务器
void start_http_server();

// 停止HTTP服务器
void stop_http_server();

// 处理HTTP请求
void handle_http_requests();

// 获取HTTP服务器状态
http_server_state_e get_http_server_status();

// 获取WebSocket连接状态 - 为了兼容性保留，始终返回false
bool is_websocket_connected();

// 发送心跳包
bool send_heartbeat(const char *server_url);

// 处理设备绑定
bool handle_device_binding(const char *server_url, const char *device_id);

// 获取HTTP绑定状态
device_bind_state_e get_http_binding_state();

// 设置设备绑定状态
void set_device_bind_state(device_bind_state_e state);

// 设置HTTP服务器URL (重命名以避免冲突)
void set_http_server_url(const char *url);

// 获取HTTP服务器URL
const char *get_http_server_url();

// 设置HTTP设备ID (重命名以避免冲突)
void set_http_device_id(const char *id);

// 获取HTTP设备ID
const char *get_http_device_id();

// 心跳包任务运行
void heartbeat_task_run();

#endif